Extending the Capabilities of the Cray Programming Environment with Clang-LLVM Framework Integration
نویسندگان
چکیده
Recent developments in programming for multicore processors and accelerators using C++11, OpenCL and Domain Specific Languages (DSL) have prompted us to look into tools that offer compilers and both static and runtime analysis toolchains to complement the Cray Programming Environment capabilities. In this paper we report our preliminary experiences from using the CLang-LLVM framework on a hybrid Cray XC30 to perform tasks such as generating NVIDIA PTX code from C++ and OpenCL in a portable and flexible manner. Specifically we investigate how to overcome some of the limitations currently imposed by the standard tools such as the complete lack of C++11 support in CUDA C and outdated 32 bit versions of OpenCL. We also demonstrate how Clang-LLVM tools, for example, the static analyzer can bring additional capabilities to the Cray environment. Finally we describe how CLang-LLVM integrates with the standard Cray Programming Environment (PE), for instance, Cray MPI, perftools and libraries, and the steps required to properly install such tools on various Cray platforms. Keywords-Programming Environment (PE); Cray XC30; GPU; Clang; LLVM (key words); CUDA, OpenCL
منابع مشابه
Polyhedral Extraction Tool
We present a new library for extracting a polyhedral model from C source. The library is based on clang, the LLVM C frontend, and isl, a library for manipulating quasi-affine sets and relations. The use of clang for parsing the C code brings advanced diagnostics and full support for C99. The use of isl allows for an easy construction and a powerful and compact representation of the polyhedral m...
متن کاملClad — Automatic Differentiation Using Clang and LLVM
Differentiation is ubiquitous in high energy physics, for instance in minimization algorithms and statistical analysis, in detector alignment and calibration, and in theory. Automatic differentiation (AD) avoids well-known limitations in round-offs and speed, which symbolic and numerical differentiation suffer from, by transforming the source code of functions. We will present how AD can be use...
متن کاملC++ const and Immutability: An Empirical Study of Writes-Through-const (Artifact)
This artifact is based on ConstSanitizer, a dynamic program analysis tool that detects deep immutability violations through const qualifiers. Our tool instruments any code compiled by clang with the -fsanitizer=const flag. Our implementation includes both instrumentation of LLVM code and a runtime library to support our analysis. The provided package includes our tool and all experiments used i...
متن کاملPaper: Togpu: Automatic Source Transformation from C++ to CUDA using Clang/LLVM
Parallel processing using GPUs provides substantial increases in algorithm performance across many disciplines including image processing. Serial algorithms are commonly translated to parallel CUDA or OpenCL algorithms. To perform this translation a user must first overcome various GPU development entry barriers. These obstacles change depending on the user but in general may include learning t...
متن کاملEnhancing Passive Side-Channel Attack Resilience through Schedulability Analysis of Data-Dependency Graphs
In this work, we provide an evaluation of the fitness of a cipher implementation for automated, low overhead, Side Channel Attack (SCA) countermeasure insertion through instruction re-scheduling. This evaluation is automated by means of an extension to the Clang/LLVM compiler framework and is thus amenable to be performed on a generic cipher implementation in C.
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2014